package org.arnetminer.personalized.dao;

import java.util.List;

import org.arnetminer.personalized.vo.Event;
import org.arnetminer.personalized.vo.EventType;
import org.arnetminer.personalized.vo.Notification;


public interface EventDAO {
	
	public void initDao();
    
    public void save(Event transientInstance);
    
	public void delete(Event persistentInstance);
    
    public List findByExample(Event instance);

    public Object merge(Event detachedInstance);

    public void attachDirty(Event instance);
    
    public void attachClean(Event instance);
    
    public EventType findEventTypeById(long id);
    
    public void saveNotification(Notification transientInstance);
    
    public List findEventsByProperties(final List<String> properties, final List values, final int start, final int max);
    
    public List findNotificationsByProperties(final List<String> properties, final List values, final int start, final int max);
    
    public void deleteNotification(Notification persistentInstance);
    
    public Event findEventById(long id);
}
